Specification and Proof of Higher-Order Programs
نویسنده
چکیده
interpretation. Another way to deal with the infinite number of states is to only consider a finite number of abstract states. Each possible state of the program is mapped to an abstract state. Each instruction, which was modeled as a transition between concrete states in model checking, now becomes a transition between abstract states. The mapping from concrete to abstract states is also called abstraction. The properties to be verified, initially formulated for concrete states, are reformulated to deal with abstract states instead. The transition diagram now becomes finite again and can be exhaustively explored, similar to the way model checking works. This method of abstracting the search space is called abstract interpretation (Cousot and Cousot, 1979), and it has been used to verify properties of a large number of industrial-sized programs. The verifier Astree (Blanchet et al., 2003) and the commercial tool The Mathworks Polyspace, among others, are based on abstract interpretation.
منابع مشابه
Verifying Object-Oriented Programs with Higher-Order Separation Logic in Coq
We present a shallow Coq embedding of a higher-order separation logic with nested triples for an object-oriented programming language. Moreover, we develop novel specification and proof patterns for reasoning in higher-order separation logic with nested triples about programs that use interfaces and interface inheritance. In particular, we show how to use the higher-order features of the Coq fo...
متن کاملHigher-Order Quantification and Proof Search
Logical equivalence between logic programs that are firstorder logic formulas holds between few logic programs, partly because first-order logic does not allow auxiliary programs and data structures to be hidden. As a result of not having such abstractions, logical equivalence will force these auxiliaries to be present in any equivalence program. Higher-order quantification can be use to hide p...
متن کاملFormalized Elliptic Curve Cryptography
Formalizing a mathematical theory is a necessary first step to proving the correctness of programs that refer to that theory in their specification. This paper demonstrates how the mathematical theory of elliptic curves and their application to cryptography can be formalized in higher order logic. This formal development is mechanized using the HOL4 theorem prover, resulting in a collection of ...
متن کاملAn overview of a proof theoretical approach to reasoning about computation
Typing rules and structural operational semantics are often given via inference rules: that is, the justification of a typing or an evaluation is actually a proof. Thus it is not surprising that proof theory can be used to benefit the specification of and the reasoning about computation. An additional advantage of using proof theory is that it can support such “intensional” aspects of computati...
متن کاملA Coq Library for Verification of Concurrent Programs
Thanks to recent advances, modern proof assistants now enable verification of realistic sequential programs. However, regarding the concurrency paradigm, previous work essentially focused on formalization of abstract systems, such as pure concurrent calculi, which are too minimal to be realistic. In this paper, we propose a library that enables verification of realistic concurrent programs in t...
متن کاملA Fistful of Dollars: Formalizing Asymptotic Complexity Claims via Deductive Program Verification
We present a framework for simultaneously verifying the functional correctness and the worst-case asymptotic time complexity of higher-order imperative programs. We build on top of Separation Logic with Time Credits, embedded in an interactive proof assistant. We formalize the O notation, which is key to enabling modular specifications and proofs. We cover the subtleties of the multivariate cas...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010